Acceleration Code Example (C)
void sun_kona_MyFrameBuffer_MySetDrawOps(
	 Hsun_kona_MyFrameBuffer *this,
	 Hsun_awt_aw_FrameBuffer *fb,
	 long depth, long regBlockAddr, long fbAddr)
{
    if (drawOps.initialized == 0) {
	/* initialize to the UNACCELERATED routines */
        awDraw_setAccelPtr(&drawOps);
        awText_setAccelPtr(&drawOps);
        awImage_setAccelPtr(&drawOps);

	/* now add acceleration where we know how */
        drawOps.FillRect = MyFillRect;
        drawOps.initialized = 1;
    }
    unhand(fb)->drawOps = (long) &drawOps;
    base = (unsigned char *)regBlockAddr;
    fbMem = (unsigned char *)fbAddr;
}

Return to Tracks